# Python 爬取與存取空氣品質 PM2.5 AQI


Posted by 大學生 on 2020-10-22

2023 更快的做法是命令 ChatGPT 為 AI 程式導師
提問如何用 python 爬取 pm2.5,(或是使用 AutoGPT 設定明確目標執行爬蟲),接下來剩下來的時間思考如何應用在日常生活中,例如用折線圖呈現產出一天內空氣品質變化,結合 IFTTT 超過多少會提醒用戶之類的,並將資料搜集彙整顯示趨勢圖,以供後續研究。

2023-0826 更新:因工作緣故收到國家科學及技術委員會來函,配合本署組改為環境部,本署環境資料關放平臺、環境資源資料交換平臺及環境資源資料交換重構平臺自112年8月22日起變更網址及應用程式介面( Application ProgrammingInterface, API),各平臺API維持新、舊API URL平行服務三個月,請於112年11月22日期限前內完成 API URL 更新。


課堂作業:爬取空氣品質 PM2.5 的即時資訊
抓取政府資料開放平台 JSON 資料 並做檔案處理

實際案例應用:
新竹科學園區空氣品質監測網:
https://hspair.sipa.gov.tw/Hspairpeople/Default.aspx

結合 Google Chart 畫出趨勢圖


執行畫面:

獲得資料方式

  • JSON 格式:requests 獲取資料 python 直接解析

好用外掛工具 (chrome):

查看 Web API json 格式:
https://chrome.google.com/webstore/detail/jsonview/


資料格式 : JSON、CSV、XML

Web API(Web Application Programming Interface)
認識 Web API、HTTP 和 JSON 資料交換格式

資訊擷取來源

後來發現有更好用 最新試行版(已正式上架)的

環保署環境資料開放平台開放資料API

註冊 API Key 後可以篩選更多參數來撈資料

要解析的 json 網址:

資料集名稱先記好比較快找到

註冊 API 使用說明:
https://data.epa.gov.tw/paradigm

request and json
透過 json 回傳的是一個 list

import requests
aqi_url = "https://data.epa.gov.tw/api/v1/aqx_p_432?offset=0&limit=80&api_key=自行註冊" 
# 環保署環境資料開放平臺 試行版 https://data.epa.gov.tw/
response = requests.get(aqi_url)
aqi = response.json()['records']
print(response.status_code)

### 200  正常回傳
### 404 回傳錯誤
print(type(response))
print(type(aqi))

輸出 List

檔案處理

“r” 唯讀模式

“w” 寫入模式(覆寫)

“a” 寫入模式(續寫)

with open("data_pm25.txt", "w", encoding="utf-8") as file:

再用 for 把資料寫入 file 當中

f = open('file.txt', 'w')
f.write("file-write")
f.close()

參考資料

輕鬆學習 Python | 資料分析

輕鬆學習 Python:透過 API 擷取網站資料

Python 初學第十二講—檔案處理

補充:ChatGPT 指令大全
https://www.explainthis.io/zh-hant/chatgpt


#Python #爬蟲 #pm2.5 #AQI #chatGPT #ifttt







Related Posts

Go init() function

Go init() function

什麼是 API? SOAP? 其他 HTTP API?

什麼是 API? SOAP? 其他 HTTP API?

Visual Studio Paste Change Spaces into Tabs

Visual Studio Paste Change Spaces into Tabs


Comments